package com.yangzc.lion.sys.util;

public class ObjectUtil {
	/**
	 * 比较两个对象是否相等（同时处理null的情况），当两个对象都为空时返回true
	 * 
	 * @param obj1
	 * @param obj2
	 * @return
	 */
	public static boolean equals(Object obj1, Object obj2) {
		return equals(obj1, obj2, true);
	}

	/**
	 * 比较两个对象是否相等（同时处理null的情况），当两个对象都为空时返回指定值bothNullReturn
	 * 
	 * @param obj1
	 * @param obj2
	 * @param bothNullReturn
	 * @return
	 */
	public static boolean equals(Object obj1, Object obj2,
			boolean bothNullReturn) {
		if (obj1 == null && obj2 == null)
			return bothNullReturn;
		if (obj1 == obj2)
			return true;
		if (obj1 == null || obj2 == null)
			return false;
		return obj1.equals(obj2);
	}

	/**
	 * 将一个对象转换为Long类型
	 * 
	 * @param value
	 * @return
	 */
	public static Long parseLong(Object value) {
		if (value instanceof Long)
			return (Long) value;
		if (value instanceof String)
			return new Long((String) value);
		if (value instanceof Number)
			return new Long(((Number) value).longValue());
		return null;
	}

	/**
	 * 将一个对象转换为Double类型
	 * 
	 * @param value
	 * @return
	 */
	public static Double parseDouble(Object value) {
		if (value != null) {
			try {
				if (value instanceof Double)
					return (Double) value;
				if (value instanceof String)
					return new Double((String) value);
				if (value instanceof Number)
					return new Double(((Number) value).doubleValue());
			} catch (Exception e) {
				return null;
			}
		}
		return null;
	}

}
